﻿using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Logica.Modulos.ClasesLogica
{
    public class LOG_Puesto_Permiso:Negocio
    {
        public List<MOD_Puesto_Permiso> SEL_Puesto_Permisos_By_ID(int codPuesto)
        {
            try
            {
                this.AbrirConexion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                List<MOD_Puesto_Permiso> lista = objBD.SEL_Puesto_Permisos_By_ID(this.comando, codPuesto);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<MOD_Puesto_Permiso> SEL_Modulos()
        {
            try
            {
                this.AbrirConexion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                List<MOD_Puesto_Permiso> lista = objBD.SEL_Modulos(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<MOD_Puesto_Permiso> SEL_Permisos_By_Modulo()
        {
            try
            {
                this.AbrirConexion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                List<MOD_Puesto_Permiso> lista = objBD.SEL_Permisos_By_Modulo(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public void CRE_Puesto_Permiso_Modulo(int codPuesto, int codPermiso, int codModulo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                objBD.CRE_PUESTO_PERMISO_MODULO(this.comando, codPuesto, codPermiso, codModulo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public int SEL_Puesto_Permiso_ModuloByIDs(int codPuesto, int codPermiso, int codModulo)
        {
            try
            {
                this.AbrirConexion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                int cant_pueper = objBD.SEL_Puesto_Permiso_ModuloByIDs(this.comando, codPuesto, codPermiso, codModulo);

                this.CerrarConexion();

                return cant_pueper;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public List<MOD_Puesto_Permiso> SEL_Permisos_By_IDMOD_IDPUE(int codModulo,int codPuesto)
        {
            try
            {
                this.AbrirConexion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                List<MOD_Puesto_Permiso> lista = objBD.SEL_Permisos_By_IDMOD_IDPUE(this.comando,codModulo, codPuesto);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        public void DEL_Pemriso_Puesto_Modulo(int codigoLinea)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

                objBD.DEL_Puesto_Permiso_Modulo(this.comando, codigoLinea);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        //public DataTable ReporteUno()
        //{
        //    try
        //    {
        //        this.AbrirConexion();
        //        AD_Puesto_Permiso objBD = new AD_Puesto_Permiso();

        //        DataTable lista = objBD.ReporteUno(this.comando);

        //        this.CerrarConexion();

        //        return lista;//retorna la lista
        //    }
        //    catch (Exception exc)
        //    {
        //        this.CerrarConexion();
        //        throw exc;
        //    }
        //}
    }
}
